package com.enjoyor.soa.traffic.api.service.dubbo.bigdata;

import com.enjoyor.soa.traffic.util.pojo.Page;
import com.enjoyor.soa.traffic.util.pojo.ResultPojo;



import java.util.List;

/**
 * 快速搜车 dubbo 服务 （接口来自SSMS）
 * Description: 快速搜车，数据来源Kafka-Solr，过车信息已包含过车id和图片路径
 * Created by wulei on 2018/01/24
 */
public interface DubboSolrVehSearService {

    /**
     * 对过车记录进行查询并获取分页结果
     * PS 为了提高查询速度，建议尽可能输入车牌； 时间范围不确定时传null,比传具体时间范围性能更好
     * @param id          过车信息ID String 可以为null
     * @param licenseType 号牌类型  String 可为null
     * @param vehType     车辆类型  String 可为null
     * @param licenseNum  号牌号码  String 可以为null，支持模糊查询
     * @param startDay    分析起始日期  String 可为null
     * @param endDay      分析截止日期  String 可为null
     * @param pointIds    卡口编号  List<String> 可以为null
     * @param minSpeed    速度范围下限  Integer 可以为null
     * @param maxSpeed    速度范围上限  Integer 可以为null
     * @param page        分页信息 Page 不可为null,必须传入pagesize,currentPage
     * @return 包含过车信息的Page
     */
    ResultPojo getPageVehSear(String id, String licenseType, String vehType, String licenseNum, String startDay, String endDay, List<String> pointIds, Integer minSpeed, Integer maxSpeed, Page page) throws Exception;

    /**
     * 对过车记录进行查询并获取List< PassInfoDto >结果
     * PS 为了提高查询速度，建议尽可能输入车牌； 时间范围不确定时传null,比传具体时间范围性能更好
     * @param id          过车信息ID String  可以为null
     * @param licenseType 号牌类型  String 可为null
     * @param vehType     车辆类型  String 可为null
     * @param licenseNum  号牌号码 String  可以为null，支持模糊查询
     * @param startDay    分析起始日期  String 可为null
     * @param endDay      分析截止日期 String  可为null
     * @param pointIds    卡口编号  List<String> 可以为null
     * @param minSpeed    速度范围下限  Integer 可以为null
     * @param maxSpeed    速度范围上限  Integer 可以为null
     * @return 包含过车信息的List (默认上限1000条数据)
     */
    ResultPojo getVehSear(String id, String licenseType, String vehType, String licenseNum, String startDay, String endDay, List<String> pointIds, Integer minSpeed, Integer maxSpeed) throws Exception;

    /**
     * 对过车记录进行查询并获取List< PassInfoDto >结果
     * @param ids 过车信息ID的list<String>
     * @return 包含过车信息的Lists(默认上限1000条数据)
     */
    ResultPojo getVehSear(List<String> ids) throws Exception;
}
